package com.zzy;
/**
 * 为了防止自己忘记：这个地方还是简单的进行备注
 * 1.我自己是第一次创建这个hello队列
 * 2.第二次为了写博客创建这个user:zzy2
 * 3.上面的两个用户是在一天发生的
 * 4.最近因为这个云服务器的问题重新学习的这个消息队列
 * 5.创建这个zzy12month用户，这个设置密码是admin
 * 6.之前设置的这个密码都是17813100102.zzy
 */

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        //1.下面的这个就是建立连接
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("101.42.52.162");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("zzy12month");
        connectionFactory.setPassword("admin");
        connectionFactory.setVirtualHost("mq");
        Connection connection = connectionFactory.newConnection();

        //2.下面的这个就是开放信道
        Channel channel = connection.createChannel();
        //3.声明交换机---内置的交换机
        //4.声明队列---
        /**
         * (String queue, boolean durable, boolean exclusive, boolean autoDelete,
                                 Map<String, Object> arguments
         * quene:队列的名称
         * durable;是否可以持久化
         * exclusive:是否可以独占
         * autoDelete:是否可以自动删除
         * arguments:这个标识的就是参数
         */
        channel.queueDeclare("hello", true, false, false, null);
        //5.内置交换机都绑定了这个对应的队列
        /**
         * String exchange, String routingKey, BasicProperties props, byte[] body
         * exchange表示的就是我们的这个交换机的名字
         * routingKey是那个队列的名字，这个就会发送给那一个队列
         * props属性配置
         * body就是我们传递的消息

         */
//        String msg="hello RabbitMQ12!!";
//        channel.basicPublish("", "hello", null, msg.getBytes());
        //channel.basicPublish("", "hello", null, ("Hello World").getBytes());
        for(int i=1;i<=10;i++){
            String msg="hello RabbitMQ12!!"+i;
            channel.basicPublish("", "hello", null, msg.getBytes());
        }
        System.out.println("消息发送成功");

//        //6.资源释放
//        channel.close();
//        connection.close();
    }


}
